package com.jinke.api.modules.user.service.impl;

import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jinke.api.modules.ums.util.UserUtil;
import com.jinke.api.modules.user.mapper.UserTokenMapper;
import com.jinke.api.modules.user.model.StoreTypeEnum;
import com.jinke.api.modules.user.model.UserToken;
import com.jinke.api.modules.user.service.UserTokenService;
import com.jinke.api.security.util.ApiUserUtil;
import org.springframework.stereotype.Service;

import java.sql.Wrapper;
import java.util.Objects;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author macro
 * @since 2024-03-16
 */
@Service
public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken> implements UserTokenService {

    @Override
    public Integer saveToken(String token, String refreshToken, String storeName, StoreTypeEnum storeType, String storeAccount) {
        UserToken usertoken = new UserToken();
        usertoken.setUserId(UserUtil.getUserInfo().getId());
        usertoken.setRefreshToken(refreshToken);
        usertoken.setToken(token);
        usertoken.setStoreName(storeName);
        usertoken.setStoreType(storeType);
        usertoken.setStoreAccount(storeAccount);
        usertoken.setCreatedAt(LocalDateTimeUtil.now());
        this.saveOrUpdate(usertoken, Wrappers.<UserToken>lambdaQuery()
                .eq(UserToken::getStoreAccount,storeAccount).eq(UserToken::getUserId,UserUtil.getUserInfo().getId()));
        return usertoken.getId();
    }

}
